//
// Created by wkm on 2024-03-31.
//

#ifndef CHIPBUS_ARBITER_H
#define CHIPBUS_ARBITER_H

#include "systemc.h"
#include "types.h"
#include "request.h"
#include "arbiter_if.h"

//
class arbiter : public arbiter_if, public sc_module {
public:
    // constructor
    arbiter(sc_module_name name_, bool verbose = false) : sc_module(name_), m_verbose(verbose) {
    }

    request *arbitrate(const request_vec &requests);

private:
    bool m_verbose;

};

#endif //CHIPBUS_ARBITER_H
